package cn.wzk.doitedu.datayi.profile

import java.io.{BufferedWriter, File, FileWriter}

import javax.imageio.ImageIO

object Image2Vector {
  def main(args: Array[String]): Unit = {
    //获取已知图片中数字的图片的目录
    //val sampDir = new File("user_profile/data/knn/samples")

    //将求图片中的数字的图片写到文件中
    val testDir = new File("user_profile/data/knn/test")
    
    //通过字符流写成csv文件
    //val br = new BufferedWriter(new FileWriter("user_profile/data/knn/samples_vec/samp.csv"))

    val br = new BufferedWriter(new FileWriter("user_profile/data/knn/test_vec/test.csv"))


    //获取目录里的所有文件
    //val files = sampDir.listFiles()

    //获取目录中的所有文件
    val files = testDir.listFiles()

    val sb = new StringBuilder()
    for (f <- files) {
      //利用java中的ImageIO读取文件
      val image = ImageIO.read(f)
      //获取图片中数字 sampl_6_1
      val fileName = f.getName.split("_")(1)
      //由于图片中的像素是32*32
      for (i <- 0 until 32) {
        for (j <- 0 until 32) {
          //通过ImageIO中的getRGB方法，如果是图片中没有像素，则为-1
          sb.append((if(image.getRGB(j,i) == -1) 0 else 1) + ",")
        }
      }
      sb.append(fileName)
      br.write(sb.toString())
      sb.clear()
      br.newLine()
    }
    br.close()
  }
}
